#include <iostream>
#include <vector>
#include <string>
#include <utility>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <stack>
#include <algorithm>
#include <cmath>
using namespace std;
int main(int argc, char** argv){
int a, c;
cin >> a >> c;
string a3, b3, c3;
while (a) {
a3 = to_string(a%3) + a3;
a /= 3;
}
while (c) {
c3 = to_string(c%3) + c3;
c /= 3;
}
while (a3.length() < c3.length()) {
a3 = '0' + a3;
}
while (c3.length() < a3.length()) {
c3 = '0' + c3;
}
for (int i = 0; i < a3.length() || i < c3.length(); i++) {
if (i < a3.length()) {
if (c3[i] >= a3[i]) {
b3 += (c3[i] - a3[i] + '0');
} else {
if (a3[i] == '2' && c3[i] == '1') {
b3 += '2';
} else if (a3[i] == '1' && c3[i] == '0') {
b3 += '2';
} else {
b3 += '1';
}
}
}
}
int sum = 0;
for (int i = b3.length()-1; i >= 0; i--) {
sum += (b3[i] - '0') * pow(3, b3.length() - i - 1);
}
cout << sum << endl;
return 0;
}
672. Richest Customer Wealth | 1470. Shuffle the Array |
1431. Kids With the Greatest Number of Candies | 1480. Running Sum of 1d Array |
682. Baseball Game | 496. Next Greater Element I |
232. Implement Queue using Stacks | 844. Backspace String Compare |
20. Valid Parentheses | 746. Min Cost Climbing Stairs |
392. Is Subsequence | 70. Climbing Stairs |
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |